home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 4 / QRZ Ham Radio Callsign Database - Volume 4.iso / files / dsp / fft / fteyaltr.z / fteyaltr / isqrt.c < prev    next >
Text File  |  1991-06-10  |  340b  |  28 lines

  1. int
  2. isqrt (n)
  3. long    n;
  4. {
  5.     register long    i, j;
  6.  
  7.     if (n <= 0)
  8.         return (0);
  9.  
  10.     if (n > 0xffffff)
  11.         i = n >> 16;
  12.     else if (n > 0xffff)
  13.         i = n >> 12;
  14.     else if (n > 0xff)
  15.         i = n >> 8;
  16.     else
  17.         i = n >> 4;
  18.     if (i <= 0)
  19.         i = 1;
  20.  
  21.     do {
  22.         j = i;
  23.         i = (j + n / j) / 2;
  24.     } while ((i-j) >= 2 || (j-i) >= 2);
  25.  
  26.     return (i);
  27. }
  28.